package com.lpwa.system.service.impl;

import com.lpwa.common.annotation.DataScope;
import com.lpwa.common.core.text.Convert;
import com.lpwa.common.utils.DateUtils;
import com.lpwa.system.domain.*;
import com.lpwa.system.mapper.LableMapper;
import com.lpwa.system.mapper.SysLocatorMapper;
import com.lpwa.system.mapper.TagLocatorMapper;
import com.lpwa.system.service.ISysLocatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * 基站管理Service业务层处理
 * 
 * @author ruoyi
 * @date 2020-11-17
 */
@Service
public class SysLocatorServiceImpl implements ISysLocatorService 
{
    @Autowired
    private SysLocatorMapper sysLocatorMapper;
    @Autowired
    private LableMapper lableMapper;
    @Autowired
    private TagLocatorMapper tagLocatorMapper;

    /**
     * 查询基站管理
     * 
     * @param id 基站管理ID
     * @return 基站管理
     */
    @Override
    public SysLocator selectSysLocatorById(Long id)
    {
        return sysLocatorMapper.selectSysLocatorById(id);
    }

    /**
     * 查询基站管理列表
     * 
     * @param sysLocator 基站管理
     * @return 基站管理
     */
    @Override
    public List<SysLocator> selectSysLocatorList(SysLocator sysLocator)
    {
        return sysLocatorMapper.selectSysLocatorList(sysLocator);
    }

    /**
     * 新增基站管理
     * 
     * @param sysLocator 基站管理
     * @return 结果
     */
    @Override
    public int insertSysLocator(SysLocator sysLocator)
    {
        sysLocator.setCreateTime(DateUtils.getNowDate());
        return sysLocatorMapper.insertSysLocator(sysLocator);
    }

    /**
     * 修改基站管理
     * 
     * @param sysLocator 基站管理
     * @return 结果
     */
    @Override
    public int updateSysLocator(SysLocator sysLocator)
    {
        sysLocator.setUpdateTime(DateUtils.getNowDate());
        return sysLocatorMapper.updateSysLocator(sysLocator);
    }

    /**
     * 删除基站管理对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteSysLocatorByIds(String ids)
    {
        return sysLocatorMapper.deleteSysLocatorByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除基站管理信息
     * 
     * @param id 基站管理ID
     * @return 结果
     */
    @Override
    public int deleteSysLocatorById(Long id)
    {
        return sysLocatorMapper.deleteSysLocatorById(id);
    }
    @Override
    public List<Tag> selectAllocatedList(Tag tag){
        List<Tag> list = lableMapper.selectAllocatedList(tag);
        return  list;
    }
    /**
     * 取消授权用户角色
     *
     * @param tagLocator 用户和角色关联信息
     * @return 结果
     */
    @Override
    public int deleteAuthTag(TagLocator tagLocator)
    {
        return tagLocatorMapper.deleteTagLocatorInfo(tagLocator);
    }
    /**
     * 取消授权用户角色
     *
     * @return 结果
     */
    @Override
    public int deleteAuthTags(String locatorId, String tagIds)
    {
        return tagLocatorMapper.deleteTagLocatorInfos(locatorId, Convert.toStrArray(tagIds));
    }
    @Override
    public int insertAuthTags(String locatorId, String tagIds){
        String [] tags = tagIds.split(",");
        // 新增用户与角色管理
        List<TagLocator> list = new ArrayList<TagLocator>();
        for (String tagId : tags)
        {
            TagLocator ur = new TagLocator();
            ur.setTagId(tagId);
            ur.setLocatorId(locatorId);
            list.add(ur);
        }
        return tagLocatorMapper.batchTagLocator(list);
    }
}
